// const baseUrl = 'http://localhost:8080/user'
// const baseUrl = 'http://81.70.215.99/api/user'
// const baseUrl = 'http://192.168.11.128/api/user'
const baseUrl = 'http://zhongyi.caijg.icu/api/user'

export {
	baseUrl
}

const getToken = () => {
	return uni.getStorageSync('userInfo').token || '';
}

const request = {
	get(url, params = {}) {
		return new Promise((resolve, reject) => {
			uni.request({ // 发送网络请求
				timeout: 120000,
				url: baseUrl + url, // 请求的URL地址
				method: 'GET', // 请求方法为GET
				// 会自动把data对象转成请求行 url?a=1&b=2
				data: params,
				// 设置请求头
				header: {
					Authorization: getToken()
				},
				success: (res) => {
					// 把返回结果 转换为JSON对象
					if (typeof res.data === "string") {
						res.data = res.data ? JSON.parse(res.data) : res.data;
					}
					// res.data 是 {status: 200, data:{xxx}, msg:'xxx'}
					if (res.data.status === 200) {
						
						// 传递的是:{status: 200, data: {xxx}, msg: 'xxx'}
						resolve(res.data) 
					} else if (res.data.status === 401) {
						// 未登录
						uni.removeStorageSync('userInfo');

						// 提示用户登录
						uni.showToast({
							icon: "none",
							title: '请先登录'
						})
						
						// 跳转到登录页	
						setTimeout(() => {
							uni.reLaunch({
								url: '/pages/login/index'
							})
						}, 1000)
					} else {
						// 如果返回的不是200 || 401
						
						// 控制台输出错误信息
						console.error(res.data.msg)
					
						// 传递异常消息
						reject(res.data.msg);
					}
				},
				// 其他错误：后端没有正常返回数据
				fail: (err) => {
					// 其他错误：后端没有正常返回数据
					console.error(err)
					reject("其他异常, 请检查控制台");
				}
			})
		})
	},

	post(url, data = {}) {
		return new Promise((resolve, reject) => {
			uni.request({
				timeout: 120000,
				url: baseUrl + url,
				method: 'POST',
				data: data, // 请求体
				header: {
					Authorization: getToken()
				},
				success: (res) => {
					// 把返回结果 转换为JSON对象
					if (typeof res.data === "string") {
						res.data = res.data ? JSON.parse(res.data) : res.data;
					}
					if (res.data.status === 200) {
						// 传递后端返回结果:{status: 200, data: {xxx}, msg: 'xxx'}
						resolve(res.data)
					} else if (res.data.status === 401) {
						// 未登录
						uni.removeStorageSync('userInfo');
						// 提示用户登录
						uni.showToast({
							icon: "none",
							title: '请先登录'
						})
						setTimeout(() => {
							uni.reLaunch({
								url: '/pages/login/index'
							})
						}, 1000)
					} else {
						// 如果返回的不是200 || 401
						// 传递异常消息
						console.error(res.data.msg)
						reject(res.data.msg);
					}
				},
				// 其他错误：后端没有正常返回数据
				fail: (err) => {
					console.error(err)
					reject("其他异常, 请检查控制台");
				}
			})
		})
	},


	// 上传图片
	uploadFile(filePath) {
		return new Promise((resolve, reject) => {
			uni.uploadFile({
				url: baseUrl + '/common/img/upload',
				filePath: filePath,
				name: 'file',
				header: {
					'Authorization': getToken()
				},
				success: (res) => {
					if (typeof res.data === "string") {
						res.data = res.data ? JSON.parse(res.data) : res.data;
					}
					if (res.data.status === 200) {
						// 传递后端返回结果:{status: 200, data: {xxx}, msg: 'xxx'}
						resolve(res.data)
					} else if (res.data.status === 401) {
						// 未登录
						uni.removeStorageSync('userInfo');
						// 提示用户登录
						uni.showToast({
							icon: "none",
							title: '请先登录'
						})	
						setTimeout(() => {
							uni.reLaunch({
								url: '/pages/login/index'
							})
						}, 1000)
					} else {
						// 如果返回的不是200 || 401
						// 传递异常消息，在catch里面提示错误信息
						console.error(res.data.msg)
						reject(res.data.msg);
					}
				},
				fail: (err) => {
					// 其他错误：后端没有正常返回数据
					console.error(err)
					reject("其他异常, 请检查控制台");
				}
			})
		})
	}
}

export default request